package com.the_last.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.the_last.pojo.dto.SubmitOrderDTO;
import com.the_last.pojo.po.Order;
import com.the_last.pojo.vo.OrderDetailVO;
import com.the_last.pojo.vo.OrderVO;
import com.the_last.pojo.vo.PageVO;
import com.the_last.utils.Result;

public interface OrderService extends IService<Order> {
    /**
     * 提交订单
     *
     * @param submitOrderDTO 订单提交信息
     * @param userId 用户ID
     * @return 订单信息
     */
    Result<Order> submitOrder(SubmitOrderDTO submitOrderDTO, Long userId);
    
    /**
     * 查询订单列表
     *
     * @param userId   用户ID（可选）
     * @param status   订单状态：-1-全部，0-未支付，1-已支付，2-已取消
     * @param pageNum  当前页码
     * @param pageSize 每页大小
     * @return 订单列表（带分页信息）
     */
    Result<PageVO<OrderVO>> getOrderList(Long userId, Integer status, Integer pageNum, Integer pageSize);
    
    /**
     * 支付订单
     *
     * @param orderId 订单ID
     * @return 支付结果
     */
    Result<String> payOrder(String orderId);
    
    /**
     * 查询订单详情
     *
     * @param orderId 订单ID
     * @return 订单详情信息
     */
    Result<OrderDetailVO> getOrderDetail(String orderId);
    
    /**
     * 删除订单（逻辑删除）
     *
     * @param orderId 订单ID
     * @return 删除结果
     */
    Result<String> deleteOrder(String orderId);
} 